工控网首页
>

应用设计

>

嵌入式状态监测与故障诊断装置设计

嵌入式状态监测与故障诊断装置设计

2014/3/14 9:07:28

摘  要:将工业以太网技术应用于工业设备监控系统,实现了基于32位高性能处理器AT91RM9200的嵌入式远程状态监测与故障诊断装置,它是机电设备状态监测与故障诊断系统的核心部分。该装置通过工业以太网协议(EtherNet/IP)来实现DeviceNet和以太网的连接,移植linux和boa建立了基于网关的网络服务器,采用动态网页技术和B/S架构的UDP Socket通信技术来实现动态实时的网页显示。

关键词:状态监测;AT91RM9200;工业以太网;BOA;动态网页

Design of the Embedded State Monitoring and Fault Diagnosing Instrument XIA Ting,WANG Na,MIN Hua-song

Abstract: The embedded statement monitoring and fault diagnosing instrument based on 32bit high performance microprocessor AT91RM9200 is implemented by appling Industrial Ethernet structure to industrial equipment monitoring and control system. It is the core of the monitoring and diagnosing system. Ethernet/IP protocol is ported to realize the connection between DeviceNet and Ethernet, Linux and BOA is ported to set up a web server on the gateway and dynamic web page technology and UDP Socket communication technology is adopted to realize real-time web display. The B/S architecture is adopted.

Keywords: state monitoring; AT91RM9200; EtherNet/IP; BOA; dynamic web page

1 引 言

  传统的状态监测与故障诊断装置通常采用现场总线方式,但此方式具有很大局限性:现场总线类型多样,相互之间差异较大,不能实现互操作,彼此连接困难,系统的信息共享和实时性不尽如人意。为了更好地搭起终端设备和远程监控系统通信的桥梁,本文提出并设计了基于工业以太网的嵌入式状态监测与故障诊断装置,和传统装置相比,它有以下优势:实现了系统的高效、统一;用户可以通过Internet随时随地监控大范围的终端设备,取代了大量前置PC,具有更好的实时、实效性[1,2]。本装置将现场采集到的实时数据通过以太网直接传送到内嵌的Web服务器上,服务器生成用于远程监测和远程故障诊断的web页面,用户通过键入设备的IP地址,就可以随时浏览到被监测设备的现场运行情况、数据采集信息以及报警信息等。

2 装置结构与特点

  目前,机电设备的状态监测与故障诊断的整个系统结构如图1所示:

图1 嵌入式状态监测与故障诊断系统结构

  本文设计开发了此体系的核心装置——嵌入式机电设备监控装置,主要分为3个模块:

  (1)数据采集模块:包括多个现场数据采集单元。主要完成现场数据的检测、采集。

  (2)数据存储与处理模块:包括嵌入式现场总线/以太网监控工控机和数据库。它通过EtherNet/IP协议,和现场总线数据采集单元进行通信,实现灵敏检测和数据存储。

  (3)在线监测模块:包括嵌入式Web服务器和监测网站。服务器生成用于远程监测和故障诊断的web页面。网络用户可以随时掌握现场运转情况,使远程监控真正实现。

  本装置拥有以下三个先进的特征:

  1)应用工业以太网,使Ethernet/IP设备和现场设备能够通信。为了实现这个功能,我们将以太网协议移植进嵌入式Linux。

  2)通过浏览器支持机电设备状态的监控。我们在嵌入式Linux中移植了BOA,设计了动态网页实时监控机电设备。

  3)支持大容量数据存储,用一个黑匣子对设备的实时数据资源进行监控。通过大容量IDE总线的扩展,连接IDE系统硬盘,存储大量数据[3]。

3 装置的硬件设计

  AT91RM9200是ATMEL针对系统控制及通信领域推出的基于ARM920T内核的新微型控制器。它具有独立的16KB指令和16KB数据 cache、全功能的MMU虚拟内存管理单元、16KB SRAM和128KB ROM、64MB NAND Flash 存储器、LCD控制器、EBI 接口控制器、4个32位的PIO控制器、20通道的外设数据控制器(DMA)、3个同步串行控制器(SSC)、4个通用同步/异步接收/发送器(USART)、主/从串行设备接口SPI、16路12位ADC、1通道16位DAC、多媒体卡接口(MCI)、以太网10/100 Base-T 以太网媒体访问控制器(MAC)、触摸屏接口、IDE接口等。

  在处理器丰富资源的基础上,本装置对其进行了相关的配置和扩展,将处理器通过16路12位ADC接口对机电设备的电压或电流信号进行采集,IDE接口外挂大容量IDE硬盘,用于存储web、采集的数据等。通过DM9161芯片,该微处理器把EMAC接口外扩为以太网接口RJ45,与工业以太网连接 [4]。AT91RM9200通过SPI接口连接CAN控制器SJA1000,CAN控制器与CAN收发器PCA82C250相连,用于连接 DeviceNet。硬件结构如图2所示:

图2 硬件结构图

4 装置的软件架构

  软件结构如图3所示:

图3 软件架构图

  4.1移植工业以太网协议

  工业以太网EtherNet/IP,是一种适用于工业环境的通讯体系,能够在广阔的区域中支持大量现场设备的连接。它采用通用工业协议(CIP)作为其应用层协议。CIP协议支持各种控制、配置和信息处理服务,包括显式报文(用于信息传输,灵活的报文交换)以及隐式报文(用于控制和实时I/O数据的传输),支持轮询、周期和状态改变数据传输触发机制,点对点单播和广播数据传输方式[5,6]。OE服务的设计简化了EtherNet/IP的移植,只需要修改操作环境文件来适合ARM Linux操作体系。

  4.2 移植BOA

  从www.boa.org下载一个主流版本的BOA源码包,本系统用的是boa-0.94.13.tar.gz。

  第一步:修改Makefile文件,编译BOA源码,生成BOA可执行文件。

  修改Makefile文件,因为我们要编译的是基于ARM的二进制代码,所以必须修改Makefile中的CC和CPP,分别将其改为交叉编译器安装的路径:CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc

  CPP=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc -E

  然后运行make进行编译,得到可执行程序boa。

  第二步:配置BOA。

  BOA启动时将加载一个配置文件boa.conf,在boa程序运行前,必须首先编辑该文件。在Boa源码目录下已有一个示例boa.conf,可以在其基础上修改。配置好的主要内容如下:

  User nobody

  Group 0

  ServerName AT91RM9200

  ErrorLog /var/log/boa/error_log

  AccessLog /var/log/boa/access_log

  DocumentRoot /var/www

  MimeTypes /etc/mime.types

  ScriptAlias /cgi-bin/ /var/www/cgi-bin/

  据此配置,需要创建日志文件目录/var/log/boa,HTML文档的主目录/var/www,将静态网页存入该目录下,CGI脚本所在目录/var/www/cgi-bin,将cgi的脚本存放在该目录下。

  4.3 CGI网页设计

  CGI(通用网关接口)提供Web服务器一个执行外部程序的通道,这种服务端技术建立了Web浏览器与Web服务器之间的交互。首先,浏览器将远程客户端发送的请求送到Web服务器,Web服务器将数据使用STDIN送给CGI程序,执行CGI程序后获得缓冲区中的设备信息,最后,使用STDOUT输出包含工业设备信息的HTML形式的结构文件,经Web服务器送回浏览器,显示给远程客户端。

  CGI程序可以用C语言编写,并且能够嵌入HTML脚本。它使用ARM-GCC编译。CGI程序可以使用GET、POST或直接的URL参数传递方法与远程客户端通信。以下是将采集到的设备数据显示到网页上的一段CGI程序,其中用到的数据库是SQLite。SQLite是用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制,它在体积与功能之间做到了较好的平衡,是理想的嵌入式数据库。

  #include

  #include "sqlite3.h"

  main(){

  …

  sqlite3* p_db;

  sqlite3_open("mydb", &p_db);/*打开数据库*/

  /*执行SQL语句选择alarm表中的所有记录,并在查询结果的每一行上执行回调函*/

  ret=sqlite3_exec(p_db, "select * from alarm;", callback,0, &errmsg);

  …

  sqlite3_close(p_db); /* 关闭数据库*/

  }

  int callback(void *p_data, int n_columns, char **column_names, char **column_values){ /*回调函数*/

  int i;

  for(i=0; i < n_columns; i++)

  printf("%s=%s\n",column_names[i],column_values[i]? column_values[i]:"NULL");/*打印出查询结果*/

  return 0;

  }

  4.4动态网页技术

  服务器端为嵌入式ARM,只能运行基于TCP/IP协议的ARM-GCC编译的Linux下的C++服务程序,本文使用嵌入式C++实现的 UDP socket技术与客户端通信。客户端使用flash或Java Applet和服务程序通信,提供动态网页。本文使用flash完成动态刷新,动态刷新采用线程机制,后台数据通过UDP socket技术与服务器端通信来获取。

  服务器端和客户端间的通信采用先进B/S结构,用户不需要在客户机一端安装诊断软件即可以在远程进行设备的监测与故障诊断,形成一个开放式的远程监测与故障诊断系统。基于UDP协议的Socket通信B/S架构如图4所示:

图4 UDP Socket通信B/S架构

  系统动态页面如图5所示:

图5 状态监测与故障诊断系统主界面

5 结束语

  本文作者创新点:将工业以太网技术、嵌入式Web Server技术、CGI技术、动态网页技术应用于嵌入式状态监测与故障诊断装置中,用户通过 URL就可以随时查看现场设备的运行情况和报警信息,与传统监控装置相比,提高了监控的实时性,缩短了检修时间,节省了检修费用,真正实现了维修制度从事故维修、定期维修向视情维修的转变。

参考文献

  [1] 王坚,张浩,严隽薇,等.基于Internet/lntranet的数字化远程故障诊断系统[J].计算机工程,2000,26(10):28-29

  [2] 金真,唐明浩,蒋琳.Internet远程监控系统的嵌入式实现方法[J].计算机工程2006.1(32):245-247

  [3] 胡昌林,刘鹏远,李永军,魏保华.某装备状态监测与故障预测系统总体设计[J].微计算机信息,2006,22(9-1):189-191

  [4] ATMEL.ARM920TTM-based Microcontroller AT91RM9200 User’s Mannual[R].August 2003.

  [5] Rinaldi,John.EtherNet/IP–An application- layer protocol for industial automation[J]. Sensors(Peterborough,NH),May,2003,20(5):43-45.

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机